#pragma once

#include <stdint.h>
#include <functional>

namespace SG
{
	uint64_t SGObject::s_CurrID = 0;

	// LUID system
	class SGObject
	{
	public:
		SGObject() { m_InstanceID = ++s_CurrID; }
		virtual ~SGObject() = default;


	private:
		std::function<void(SGObject*)> m_DisposeFn = nullptr;
		static uint64_t s_CurrID;
		uint64_t m_InstanceID;
	};

}